Skip to content

5.5.0 Release#4121

Merged
github-actions[bot] merged 5 commits into
mainfrom
release/5.5.0
Jun 3, 2026
Merged

5.5.0 Release#4121
github-actions[bot] merged 5 commits into
mainfrom
release/5.5.0

Conversation

@Stream-SDK-Bot
Copy link
Copy Markdown
Collaborator

StreamChat

✅ Added

  • Add ChannelListQuery(predefinedFilter:filterValues:sortValues:) for creating channel list queries with predefined filters #4113
  • Add ChatClient.queryGroupedChannels(groups:limit:presence:watch:) to fetch grouped channels with per-group unread counts #4076
  • Add ChatClient.makeChannelList(with:) overload for observing a single grouped channels group in the state layer #4076
  • Add unreadChannelCountsByGroup to CurrentChatUser, observable for changes via ConnectedUser #4076

@Stream-SDK-Bot Stream-SDK-Bot requested a review from a team as a code owner June 3, 2026 10:42
@coderabbitai
Copy link
Copy Markdown

coderabbitai Bot commented Jun 3, 2026

Important

Review skipped

Auto reviews are disabled on base/target branches other than the default branch.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: 777b0a72-e61a-4da1-aca7-8ddd70c8c677

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch release/5.5.0

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@Stream-SDK-Bot
Copy link
Copy Markdown
Collaborator Author

SDK Size

title previous release current release diff status
StreamChat 6.85 MB 6.96 MB +120 KB 🟢
StreamChatUI 4.25 MB 4.25 MB 0 KB 🟢
StreamChatCommonUI 0.84 MB 0.84 MB 0 KB 🟢

@Stream-SDK-Bot
Copy link
Copy Markdown
Collaborator Author

StreamChat XCSize

Object Diff (bytes)
UserListController.o -24814
ChannelListController.o +24497
ChannelListPayload.o +22985
GroupedChannelListLinker.o +22242
PredefinedFilter+Generated.o +12430
Show 67 more objects
Object Diff (bytes)
ChannelListUpdater.o +10707
SyncOperations.o +8524
MessageUpdater.o -7584
ChannelListQuery+PredefinedFilter.o +6834
ChannelWatcherHandler.o -5672
ChannelList.o +5140
ChannelListQuery.o +5138
ChannelListLinker.o +5036
ConnectionController.o -4826
Filter.o +3990
ChannelListQueryDTO.o +3482
RequestEncoder.o +2904
MessageDTO.o +2838
StreamCDNStorage.o +2706
CurrentUserDTO.o +2608
ChannelReadUpdaterMiddleware.o +2590
ChannelUpdater.o +2046
ChannelListState+Observer.o +1884
EndpointPath.o +1343
DataStore.o +960
LivestreamChannelController.o +920
ChatClient.o +808
ChannelDTO.o +736
SyncRepository.o +734
ChannelGroup.o +681
OfflineRequestsRepository.o +634
ChannelEvents.o +592
NotificationEvents.o +592
AnyAttachmentPayload.o +574
ThreadDTO.o -516
ChatClient+Factory.o +496
APIClient.o +442
AttachmentDownloader.o +372
PushDevice.o -356
MessageSender.o -356
DraftPayloads.o -271
StreamCore.o -252
MessageEvents.o +252
ChannelListState.o +248
EventPayload.o +242
LocationPayloads.o -204
CurrentUser.o +203
DatabaseContainer.o -188
Event.o +168
MessageReactionDTO.o -156
CurrentUserPayloads.o -156
ChannelListSortingKey.o -129
FlagUserPayload.o -124
Chat.o -118
UserListUpdater.o +112
CastPollVoteRequestBody.o +108
MessagePayloads.o -108
MessageReminderDTO.o -100
MemberEventMiddleware.o -95
ChannelRepository.o +88
DatabaseSession.o +86
AttachmentTypes.o +72
MessageModerationDetailsPayload.o +64
Sequence+CompactMapLoggingError.o -60
MessageSearch.o -60
AttachmentQueueUploader.o -60
ListChange.o -56
PollVoteListController.o +52
ChatClientFactory.o +48
MarkdownParser.o -48
ChatMessageAttachment.o +44
UnknownChannelEvent.o -44

@Stream-SDK-Bot
Copy link
Copy Markdown
Collaborator Author

StreamChatUI XCSize

Object Diff (bytes)
ChatChannelListRouter.o -44

@Stream-SDK-Bot
Copy link
Copy Markdown
Collaborator Author

SDK Performance

target metric benchmark branch performance status
MessageList Hitches total duration 10 ms 5.01 ms 49.9% 🔼 🟢
Duration 2.6 s 2.53 s 2.69% 🔼 🟢
Hitch time ratio 4 ms per s 1.96 ms per s 51.0% 🔼 🟢
Frame rate 75 fps 78.43 fps 4.57% 🔼 🟢
Number of hitches 1 0.4 60.0% 🔼 🟢

@github-actions
Copy link
Copy Markdown

github-actions Bot commented Jun 3, 2026

1 Warning
⚠️ Big PR

Generated by 🚫 Danger

@github-actions
Copy link
Copy Markdown

github-actions Bot commented Jun 3, 2026

Public Interface

+ public struct ChannelGroup: Sendable  
+ 
+   public let groupKey: String
+   public let unreadChannels: Int
+   public let channels: [ChatChannel]

+ public protocol HasUnreadChannelCountsByGroup: Event



 public class ChatChannelListController: DataController, DelegateCallable, DataStoreProvider, @unchecked Sendable  
-   public let query: ChannelListQuery
+   public internal var query: ChannelListQuery

- public final class NotificationMarkUnreadEvent: ChannelSpecificEvent  
+ public final class NotificationMarkUnreadEvent: ChannelSpecificEvent, HasUnreadChannelCountsByGroup  
-   public let unreadMessagesCount: Int
+   public let unreadChannelCountsByGroup: [String: Int]?
+   public let unreadMessagesCount: Int

 public struct ChannelListQuery: Encodable, Sendable, LocalConvertibleSortingQuery  
-   
+   case predefinedFilter = "predefined_filter"
- 
+   case filterValues = "filter_values"
-   public let filter: Filter<ChannelListFilterScope>
+   case sortValues = "sort_values"
-   public let sort: [Sorting<ChannelListSortingKey>]
+   
-   public var pagination: Pagination
+ 
-   public let messagesLimit: Int?
+   public internal var filter: Filter<ChannelListFilterScope>
-   public let membersLimit: Int?
+   public internal var sort: [Sorting<ChannelListSortingKey>]
-   public var options: QueryOptions
+   public var pagination: Pagination
-   
+   public let messagesLimit: Int?
- 
+   public let membersLimit: Int?
-   public init(filter: Filter<ChannelListFilterScope>,sort: [Sorting<ChannelListSortingKey>] = [],pageSize: Int = .channelsPageSize,messagesLimit: Int? = nil,membersLimit: Int? = nil)
+   public var options: QueryOptions
-   
+   public let predefinedFilter: String?
- 
+   public let filterValues: [String: RawJSON]?
-   public func encode(to encoder: Encoder)throws
+   public let sortValues: [String: RawJSON]?
+   
+ 
+   public init(filter: Filter<ChannelListFilterScope>,sort: [Sorting<ChannelListSortingKey>] = [],pageSize: Int = .channelsPageSize,messagesLimit: Int? = nil,membersLimit: Int? = nil)
+   public init(predefinedFilter: String,filterValues: [String: RawJSON]? = nil,sortValues: [String: RawJSON]? = nil,pageSize: Int = .channelsPageSize,messagesLimit: Int? = nil,membersLimit: Int? = nil)
+   
+ 
+   public func encode(to encoder: Encoder)throws

- public final class NotificationMarkReadEvent: ChannelSpecificEvent, HasUnreadCount  
+ public final class NotificationMarkReadEvent: ChannelSpecificEvent, HasUnreadCount, HasUnreadChannelCountsByGroup  
-   public let lastReadMessageId: MessageId?
+   public let unreadChannelCountsByGroup: [String: Int]?
-   public let createdAt: Date
+   public let lastReadMessageId: MessageId?
+   public let createdAt: Date

 @MainActor public final class ChannelListState: ObservableObject  
-   public let query: ChannelListQuery
+   public internal var query: ChannelListQuery

- public final class NotificationChannelDeletedEvent: ChannelSpecificEvent  
+ public final class NotificationChannelDeletedEvent: ChannelSpecificEvent, HasUnreadChannelCountsByGroup  
+   public let unreadChannelCountsByGroup: [String: Int]?

- public final class MessageNewEvent: ChannelSpecificEvent, HasUnreadCount  
+ public final class MessageNewEvent: ChannelSpecificEvent, HasUnreadCount, HasUnreadChannelCountsByGroup  
+   public let unreadChannelCountsByGroup: [String: Int]?

 public class CurrentChatUser: ChatUser, @unchecked Sendable  
-   public let isInvisible: Bool
+   public let unreadChannelCountsByGroup: [String: Int]?
-   public let privacySettings: UserPrivacySettings
+   public let isInvisible: Bool
-   public let pushPreference: PushPreference?
+   public let privacySettings: UserPrivacySettings
+   public let pushPreference: PushPreference?

 public class ChatClient: @unchecked Sendable  
-   public func uploadAttachment(localUrl: URL,progress: (@Sendable (Double) -> Void)?,completion: @escaping @Sendable (Result<UploadedFile, Error>) -> Void)
+   @discardableResult public func queryGroupedChannels(groups: [String],limit: Int? = nil,presence: Bool = false,watch: Bool = true)async throws -> [ChannelGroup]
-   public func deleteAttachment(remoteUrl: URL,completion: @escaping @Sendable (Error?) -> Void)
+   public func uploadAttachment(localUrl: URL,progress: (@Sendable (Double) -> Void)?,completion: @escaping @Sendable (Result<UploadedFile, Error>) -> Void)
+   public func deleteAttachment(remoteUrl: URL,completion: @escaping @Sendable (Error?) -> Void)

- public final class ChannelTruncatedEvent: ChannelSpecificEvent  
+ public final class ChannelTruncatedEvent: ChannelSpecificEvent, HasUnreadChannelCountsByGroup  
+   public let unreadChannelCountsByGroup: [String: Int]?

- public final class NotificationMessageNewEvent: ChannelSpecificEvent, HasUnreadCount  
+ public final class NotificationMessageNewEvent: ChannelSpecificEvent, HasUnreadCount, HasUnreadChannelCountsByGroup  
+   public let unreadChannelCountsByGroup: [String: Int]?

@github-actions
Copy link
Copy Markdown

github-actions Bot commented Jun 3, 2026

Build for regression testing №123457146 has been uploaded to TestFlight 🎁

@sonarqubecloud
Copy link
Copy Markdown

sonarqubecloud Bot commented Jun 3, 2026

@testableapple
Copy link
Copy Markdown
Contributor

/merge release

@testableapple
Copy link
Copy Markdown
Contributor

Publication of the release has been launched 👍

@github-actions github-actions Bot merged commit 7e65b6c into main Jun 3, 2026
19 checks passed
@github-actions github-actions Bot deleted the release/5.5.0 branch June 3, 2026 12:23
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants